/******************************************************************************************
 * Import
 ******************************************************************************************/

// module
import _ from 'lodash';

/******************************************************************************************
 * Export Class
 ******************************************************************************************/

export default class Param {

    /**
     * 设置Get方法的参数
     * 
     * @param {String} url 此次访问的url
     * @param {Object} data 数据对象
     * @return {String} 需要连接到url之后的querystring
     */
    static get(url, data) {

        // 如果不是平面对象，则直接返回空串
        if (!_.isPlainObject(data)) {
            return '';
        }

        // 计算params数组
        let params = [];
        for (let key in data) {
            params.push(key + '=' + data[key]);
        }

        // 计算得到连接符号和查询字符串
        const symbol = url.indexOf('?') === -1 ? '?' : '&';
        const query = params.join('&');

        // 返回连接在url之后需要连接的参数字符串
        return symbol + query;
    }

    /**
     * 设置Post方法的参数
     * 
     * @param {Object} data 数据对象
     * @return {FormData} 如果存在data，则返回新的formData数据，否则返回null
     */
    static post(data) {

        // 如果不是平面对象，则直接返回false（代表不需要在obj添加body）
        if (!_.isPlainObject(data)) {
            return null;
        }

        // 制作formData对象，并返回
        let formData = new FormData();
        for (let key in data) {
            formData.append(key, data[key])
        }

        // 返回formData数据（代表需要在obj添加body）
        return formData;
    }
}